package com.xms.sdk.query;

import com.xms.core.exception.XmsException;
import com.xms.datacore.SqlDescriptor;
import com.xms.sdk.core.RetrieverParameter;

/**
 * <p>
 * IQueryResolver
 * </p>
 *
 * @author migo
 * @since 2021/9/1
 */
public interface IQueryResolver {
    /*String getAliasJoiner();
    List<AttributeAlias> getAttributeAliasList();
    List<Attribute> getAttributeList();
    List<Entity> getEntityList();
    Entity getMainEntity();*/
    //QueryParameters getParameters();
    //QueryBase getQueryObject();
    //List<RelationShip> getRelationShipList();

    //IQueryResolver init(QueryBase query);

    /*QueryResult<DynamicData> find(RetrieverParameter parameters) throws Exception;

    QueryResult<List<DynamicData>> query(RetrieverParameter parameters) throws SQLException, XmsException;

    QueryResult<PagedList<DynamicData>> queryPaged(RetrieverParameter parameters) throws Exception;*/

    SqlDescriptor toSqlString(RetrieverParameter parameters, QueryMetadataDescriptor metadataDescriptor) throws XmsException;
}
